
import * as tencentcloud from "tencentcloud-sdk-nodejs";
import { getConfig } from "./index";
const configService=getConfig().TENCENT_CONFIG;

const SmsClient = tencentcloud.sms.v20210111.Client;

const clientConfig = {
  credential: {
    secretId: configService.secretId,
    secretKey: configService.secretKey,
  },
  region: "ap-nanjing",
  profile: {
    httpProfile: {
      endpoint: "sms.tencentcloudapi.com",
    },
  },
};

/**
 * 发送短信
 * @param phone 需要接收短信的手机号
 * @param templateId 短信模板ID
 * @param templateParamSet 短信参数
 * @returns 
 */
export const sendSms=(phone:string,templateId:string,templateParamSet:string[])=>{
  let res = {
    code: 200,
    data: {},
    msg: '',
  };
  const client = new SmsClient(clientConfig);
  const params={
    /* 短信应用ID: 短信SmsSdkAppId在 [短信控制台] 添加应用后生成的实际SmsSdkAppId，示例如1400006666 */
    SmsSdkAppId: "1400622431",
    /* 短信签名内容: 使用 UTF-8 编码，必须填写已审核通过的签名，签名信息可登录 [短信控制台] 查看 */
    SignName: "恋爱的时光故事",
    /* 下发手机号码，采用 e.164 标准，+[国家或地区码][手机号]
     * 示例如：+8613711112222， 其中前面有一个+号 ，86为国家码，13711112222为手机号，最多不要超过200个手机号*/
    PhoneNumberSet: [phone],
    /* 模板 ID: 必须填写已审核通过的模板 ID。模板ID可登录 [短信控制台] 查看 */
    TemplateId: templateId,
    /* 模板参数: 若无模板参数，则设置为空*/
    TemplateParamSet: templateParamSet,
  }
  return new Promise((resolve, reject)=>{
    client.SendSms(params,(err, response)=>{
      if(err){
        res={
          code:500,
          data:{
            response:err
          },
          msg:'发送短信失败'
        }
        reject(res)
      }
      else{
        res={
          code:200,
          data:{
            response:response
          },
          msg:'发送短信成功!'
        }
        resolve(response)
      }
    })
  })
}

